home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "modDisposable"
- '*******************************************************************************
- '* This is a part of the Microsoft DXSDK Code Samples.
- '* Copyright (C) 1999-2001 Microsoft Corporation.
- '* All rights reserved.
- '* This source code is only intended as a supplement to
- '* Microsoft Development Tools and/or SDK documentation.
- '* See these sources for detailed information regarding the
- '* Microsoft samples programs.
- '*******************************************************************************
- Option Explicit
- Option Base 0
- Option Compare Text
-
-
-
- ' **************************************************************************************************************************************
- ' * PUBLIC INTERFACE- GENERAL PROCEDURES
- ' *
- ' *
- ' ******************************************************************************************************************************
- ' * procedure name: GetTimelineDirect
- ' * procedure description: Populate the treeview control by walking the Timeline via Dexter API's
- ' *
- ' ******************************************************************************************************************************
- Public Sub GetTimelineDirect(ctrlTreeView As TreeView, objTimeline As AMTimeline, Optional colDataStore As Collection)
- Dim nCount As Long
- Dim objNode As node
- Dim nGroupCount As Long
- Dim bstrRootGUID As String
- Dim bstrGroupGUID As String
- Dim objGroup As AMTimelineGroup
- Dim objTimelineObject As AMTimelineObj
- On Local Error GoTo ErrLine
-
- 'Ensure the treeview control's nodes are cleared
- If Not ctrlTreeView Is Nothing Then
- If ctrlTreeView.Nodes.Count <> 0 Then
- ctrlTreeView.Nodes.Clear
- End If
- End If
-
- 'clear the collection
- If Not colDataStore Is Nothing Then
- Do Until colDataStore.Count = 0
- colDataStore.Remove 1
- Loop
- End If
-
- 'get a guid for a key
- bstrRootGUID = GetGUID
- 'Insert the root timeline node
- Set objNode = ctrlTreeView.Nodes.Add(, , bstrRootGUID, "TimeLine 1", 1)
- objNode.Tag = "AMTimeline"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objTimeline, bstrRootGUID
-
-
- 'Obtain the number of groups to populate with
- nGroupCount = GetGroupCount(objTimeline)
- While nCount < nGroupCount: DoEvents
- 'get the group
- objTimeline.GetGroup objTimelineObject, nCount
- 'instantiate the local copy
- Set objGroup = objTimelineObject
- 'get a guid for a key
- bstrGroupGUID = GetGUID
- 'Insert the group timeline node
- Set objNode = ctrlTreeView.Nodes.Add(1, 4, bstrGroupGUID, "Group" + CStr(nCount) & Chr(32), 2)
- objNode.Tag = "AMTimelineGroup"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objGroup, bstrGroupGUID
- 'append all tracks
- AddTracks ctrlTreeView, bstrGroupGUID, objTimelineObject, colDataStore
- 'append all effects
- AddEffects ctrlTreeView, bstrGroupGUID, objTimelineObject, colDataStore
- 'append all transitions
- AddTransitions ctrlTreeView, bstrGroupGUID, objTimelineObject, colDataStore
- 'append compositions
- AddComposites ctrlTreeView, bstrGroupGUID, objTimelineObject, colDataStore
- 'dereference & clean-up
- If Not objGroup Is Nothing Then Set objGroup = Nothing
- If Not objTimelineObject Is Nothing Then Set objTimelineObject = Nothing
- 'increment the group count by a factor of one
- nCount = nCount + 1
- Wend
-
- 'expand all items in the treeview control
- For nCount = 1 To ctrlTreeView.Nodes.Count
- ctrlTreeView.Nodes(nCount).Expanded = True
- Next
-
- 'clean-up & dereference
- If Not objGroup Is Nothing Then Set objGroup = Nothing
- If Not objTimelineObject Is Nothing Then Set objTimelineObject = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: RefreshListView
- ' * procedure description: Updates the listview
- ' *
- ' ******************************************************************************************************************************
- Public Sub RefreshListView(ctrlListView As ListView, bstrType As String, bstrKey As String)
- Dim objListItem As ListItem
- On Local Error GoTo ErrLine
-
- 'setup listview
- If ctrlListView.View <> lvwReport Then ctrlListView.View = lvwReport
- If ctrlListView.ListItems.Count <> 0 Then Call ctrlListView.ListItems.Clear
- If ctrlListView.ColumnHeaders.Count = 0 Then
- ctrlListView.ColumnHeaders.Add , "Parameter", "Parameter", (ctrlListView.Width / 2) - 50
- ctrlListView.ColumnHeaders.Add , "Value", "Value", (ctrlListView.Width / 2) - 50
- End If
- 'append items to the listview
- Set objListItem = ctrlListView.ListItems.Add(1, "Type", "Type")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = bstrType
- Set objListItem = ctrlListView.ListItems.Add(2, "Key Name", "Key Name")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = bstrKey
- Set objListItem = ctrlListView.ListItems.Add(3, Space(1), Space(1))
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = Space(1)
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' **************************************************************************************************************************************
- ' * PUBLIC INTERFACE- ADD PROCEDURES (PROCEDURES ADD GIVEN ITEMS TO THE TREEVIEW)
- ' *
- ' *
- ' ******************************************************************************************************************************
- ' * procedure name: AddComposites
- ' * procedure description: appends all composites on to the treeview
- ' *
- ' ******************************************************************************************************************************
- Public Sub AddComposites(ctrlTreeView As TreeView, bstrParent As String, objTimelineObject As AMTimelineObj, Optional colDataStore As Collection)
- Dim nType As Long
- Dim objNode As node
- Dim nPriority As Long
- Dim bstrGUID As String
- Dim nTrackCount As Long
- Dim nTotalVirtualTracks As Long
- Dim objComp As AMTimelineComp
- Dim objLocalTimelineObject As AMTimelineObj
- Dim objCompVirtualTrack As IAMTimelineVirtualTrack
- On Local Error GoTo ErrLine
-
- 'derive composition
- Set objComp = objTimelineObject
- 'obtain track count
- objComp.VTrackGetCount nTotalVirtualTracks
-
-
- 'loop through the tracks
- While nTrackCount < nTotalVirtualTracks: DoEvents
- 'get the object
- objComp.GetVTrack objLocalTimelineObject, nTrackCount
- 'obtain the timeline type
- objLocalTimelineObject.GetTimelineType nType
-
- If nType = TIMELINE_MAJOR_TYPE_COMPOSITE Then
- 'obtain the comp
- Set objCompVirtualTrack = objLocalTimelineObject
- 'obtain the Priority
- objCompVirtualTrack.TrackGetPriority nPriority
- 'get a guid for a key
- bstrGUID = GetGUID
- 'Insert the root timeline node
- Set objNode = ctrlTreeView.Nodes.Add(bstrParent, 4, bstrGUID, "Comp" & CStr(nPriority) & Chr(32), 2)
- objNode.Tag = "AMTimelineComp"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objCompVirtualTrack, bstrGUID
- 'recursive call of dependent children
- Call AddEffects(ctrlTreeView, bstrGUID, objLocalTimelineObject, colDataStore)
- Call AddTransitions(ctrlTreeView, bstrGUID, objLocalTimelineObject, colDataStore)
- Call AddComposites(ctrlTreeView, bstrGUID, objLocalTimelineObject, colDataStore)
-
- ElseIf nType = TIMELINE_MAJOR_TYPE_TRACK Then
- 'recursive call of dependent children
- AddTracks ctrlTreeView, bstrParent, objLocalTimelineObject, colDataStore
- End If
-
- 'clean-up & dereference
- If Not objCompVirtualTrack Is Nothing Then Set objCompVirtualTrack = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- 'increment track counter
- nTrackCount = nTrackCount + 1
- Wend
-
- 'clean-up & dereference
- If Not objNode Is Nothing Then Set objNode = Nothing
- If Not objComp Is Nothing Then Set objComp = Nothing
- If Not objCompVirtualTrack Is Nothing Then Set objCompVirtualTrack = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: AddEffects
- ' * procedure description: appends all effects on to the treeview
- ' *
- ' ******************************************************************************************************************************
- Public Sub AddEffects(ctrlTreeView As TreeView, bstrParent As String, objTimelineObject As AMTimelineObj, Optional colDataStore As Collection)
- Dim objNode As node
- Dim bstrGUID As String
- Dim nEffectCount As Long
- Dim nTotalEffects As Long
- Dim objEffect As AMTimelineEffect
- Dim objLocalTimelineObject As AMTimelineObj
- Dim objEffectable As IAMTimelineEffectable
- On Local Error GoTo ErrLine
-
- Set objEffectable = objTimelineObject
- objEffectable.EffectGetCount nTotalEffects
-
- While nEffectCount < nTotalEffects: DoEvents
- 'get the timeline object
- objEffectable.GetEffect objLocalTimelineObject, nEffectCount
- 'get the effect from the timeline object
- Set objEffect = objLocalTimelineObject
- 'get a guid for a key
- bstrGUID = GetGUID
- 'Insert the effect timeline node
- Set objNode = ctrlTreeView.Nodes.Add(bstrParent, 4, bstrGUID, "Effect" & CStr(nEffectCount) & Chr(32), 2)
- objNode.Tag = "AMTimelineEffect"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objEffect, bstrGUID
- 'clean-up & dereference
- If Not objEffect Is Nothing Then Set objEffect = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- 'increment the count
- nEffectCount = nEffectCount + 1
- Wend
-
- 'clean-up & dereference
- If Not objNode Is Nothing Then Set objNode = Nothing
- If Not objEffect Is Nothing Then Set objEffect = Nothing
- If Not objEffectable Is Nothing Then Set objEffectable = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: AddTracks
- ' * procedure description: appends all tracks on to the treeview; objTimelineObject evaluates to a virtual track
- ' *
- ' ******************************************************************************************************************************
- Public Sub AddTracks(ctrlTreeView As TreeView, bstrParent As String, objTimelineObject As AMTimelineObj, Optional colDataStore As Collection)
- Dim objNode As node
- Dim nPriority As Long
- Dim bstrGUID As String
- Dim objTrack As AMTimelineTrack
- Dim objVirtualTrack As IAMTimelineVirtualTrack
- On Local Error GoTo ErrLine
-
- 'get the track object
- Set objTrack = objTimelineObject
- 'get the virtual track object
- Set objVirtualTrack = objTrack
- 'get the virtual track priority
- objVirtualTrack.TrackGetPriority nPriority
-
- 'get a guid for a key
- bstrGUID = GetGUID
- 'Insert the root timeline node
- Set objNode = ctrlTreeView.Nodes.Add(bstrParent, 4, bstrGUID, "Track" & CStr(nPriority) & Chr(32), 2)
- objNode.Tag = "AMTimelineTrack"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objTrack, bstrGUID
- 'recursive call of dependent children
- Call AddSources(ctrlTreeView, bstrGUID, objTimelineObject, colDataStore)
- Call AddEffects(ctrlTreeView, bstrGUID, objTimelineObject, colDataStore)
- Call AddTransitions(ctrlTreeView, bstrGUID, objTimelineObject, colDataStore)
- 'clean-up & dereference
- If Not objNode Is Nothing Then Set objNode = Nothing
- If Not objTrack Is Nothing Then Set objTrack = Nothing
- If Not objVirtualTrack Is Nothing Then Set objVirtualTrack = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: AddSources
- ' * procedure description: appends all sources on to the treeview
- ' *
- ' ******************************************************************************************************************************
- Public Sub AddSources(ctrlTreeView As TreeView, bstrParent As String, objTimelineObject As AMTimelineObj, Optional colDataStore As Collection)
- Dim objNode As node
- Dim dblStart As Double
- Dim bstrGUID As String
- Dim nSourceCount As Long
- Dim nTotalSources As Long
- Dim objSource As AMTimelineSrc
- Dim objTrack As AMTimelineTrack
- Dim objLocalTimelineObject As AMTimelineObj
- On Local Error GoTo ErrLine
-
- 'get a track
- Set objTrack = objTimelineObject
- 'get the number of sources
- objTrack.GetSourcesCount nTotalSources
-
-
- While nSourceCount < nTotalSources: DoEvents
- 'get the timeline object
- objTrack.GetNextSrc2 objLocalTimelineObject, dblStart
- 'derive the source object from the timeline object
- Set objSource = objLocalTimelineObject
- 'get a guid for a key
- bstrGUID = GetGUID
- 'Insert the root timeline node
- Set objNode = ctrlTreeView.Nodes.Add(bstrParent, 4, bstrGUID, "Clip" & CStr(nSourceCount) & Chr(32), 2)
- objNode.Tag = "AMTimelineSrc"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objSource, bstrGUID
- 'dereference & clean-up
- If Not objSource Is Nothing Then Set objSource = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- 'increment the source counter
- nSourceCount = nSourceCount + 1
- Wend
- 'dereference & clean-up
- If Not objNode Is Nothing Then Set objNode = Nothing
- If Not objTrack Is Nothing Then Set objTrack = Nothing
- If Not objSource Is Nothing Then Set objSource = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: AddTransitions
- ' * procedure description: appends an all the transitions on to the treeview
- ' *
- ' ******************************************************************************************************************************
- Public Sub AddTransitions(ctrlTreeView As TreeView, bstrParent As String, objTimelineObject As AMTimelineObj, Optional colDataStore As Collection)
- Dim objNode As node
- Dim bstrGUID As String
- Dim nTransitionCount As Long
- Dim nTotalTransitions As Long
- Dim dblReferenceTime As Double
- Dim objTransition As AMTimelineTrans
- Dim objTransable As IAMTimelineTransable
- Dim objLocalTimelineObject As AMTimelineObj
- On Local Error GoTo ErrLine
-
- 'get the transable
- Set objTransable = objTimelineObject
- 'get the transition count
- objTransable.TransGetCount nTotalTransitions
-
- While nTransitionCount < nTotalTransitions: DoEvents
- 'get the next transition into a timeline object
- objTransable.GetNextTrans2 objLocalTimelineObject, dblReferenceTime
- 'get the transition object from the timeline object
- Set objTransition = objLocalTimelineObject
- 'get a guid for a key
- bstrGUID = GetGUID
- 'Insert the root timeline node
- Set objNode = ctrlTreeView.Nodes.Add(bstrParent, 4, bstrGUID, "Transition" & CStr(nTransitionCount) & Chr(32), 2)
- objNode.Tag = "AMTimelineTrans"
- 'append to datastore (optional)
- If Not colDataStore Is Nothing Then colDataStore.Add objTransition, bstrGUID
- 'clean-up & dereference
- If Not objTransition Is Nothing Then Set objTransition = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- 'increment the transition count
- nTransitionCount = nTransitionCount + 1
- Wend
-
- 'clean-up & dereference
- If Not objNode Is Nothing Then Set objNode = Nothing
- If Not objTransable Is Nothing Then Set objTransable = Nothing
- If Not objTransition Is Nothing Then Set objTransition = Nothing
- If Not objLocalTimelineObject Is Nothing Then Set objLocalTimelineObject = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' **************************************************************************************************************************************
- ' * PUBLIC INTERFACE- VIEW PROCEDURES (PROCEDURES GET INFO FROM A TIMELINE OBJECT & DISPLAY IN LISTVIEW)
- ' *
- ' *
- ' ******************************************************************************************************************************
- ' * procedure name: ViewTimelineInfo
- ' * procedure description: updates the ide/listview to display the given objTimeline information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewTimelineInfo(ctrlListView As ListView, objTimeline As AMTimeline)
- Dim nDirty As Long
- Dim nInsertMode As Long
- Dim dblDuration As Double
- Dim objListItem As ListItem
- Dim nEffectsEnabled As Long
- Dim dblDefaultFPS As Double
- Dim bstrDefaultEffect As String
- Dim nTransitionsEnabled As Long
- Dim bstrDefaultTransition As String
- On Local Error GoTo ErrLine
-
- 'obtain property value(s)
- objTimeline.GetInsertMode nInsertMode
- objTimeline.TransitionsEnabled nTransitionsEnabled
- objTimeline.EffectsEnabled nEffectsEnabled
- objTimeline.GetDefaultFPS dblDefaultFPS
- objTimeline.IsDirty nDirty
- bstrDefaultTransition = objTimeline.GetDefaultTransitionB
- bstrDefaultEffect = objTimeline.GetDefaultEffectB
-
- 'append timeline's information to the listview
- Set objListItem = ctrlListView.ListItems.Add(4, "InsertMode", "InsertMode")
- If nInsertMode = 2 Then
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = "INSERT"
- Else: objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = "OVERLAY"
- End If
- Set objListItem = ctrlListView.ListItems.Add(5, "TransitionsEnabled", "TransitionsEnabled")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nTransitionsEnabled)
- Set objListItem = ctrlListView.ListItems.Add(6, "EffectsEnabled", "EffectsEnabled")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nEffectsEnabled)
- Set objListItem = ctrlListView.ListItems.Add(7, "Duration", "Duration")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblDuration)
- Set objListItem = ctrlListView.ListItems.Add(8, "DefaultFPS", "DefaultFPS")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblDefaultFPS)
- Set objListItem = ctrlListView.ListItems.Add(9, "Dirty", "Dirty")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nDirty)
- Set objListItem = ctrlListView.ListItems.Add(10, "DefaultTransition", "DefaultTransition")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = bstrDefaultTransition
- Set objListItem = ctrlListView.ListItems.Add(11, "DefaultEffect", "DefaultEffect")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = bstrDefaultEffect
-
- 'clean-up & dereference
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewGroupInfo
- ' * procedure description: updates the ide/listview to display the given group information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewGroupInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nPriority As Long
- Dim nMediaType As Long
- Dim objListItem As ListItem
- Dim nPreviewMode As Long
- Dim dblOutputFPS As Double
- Dim bstrGroupName As String
- Dim nOutputBuffering As Long
- Dim objGroup As AMTimelineGroup
- On Local Error GoTo ErrLine
-
- 'obtain group from timeline object
- Set objGroup = objTimelineObject
-
- 'obtain property value(s)
- objGroup.GetPriority nPriority
- objGroup.GetOutputFPS dblOutputFPS
- objGroup.GetPreviewMode nPreviewMode
- objGroup.GetOutputBuffering nOutputBuffering
-
- 'append the timeline's information to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "GroupName", "GroupName")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(bstrGroupName)
- Set objListItem = ctrlListView.ListItems.Add(5, "MediaType", "MediaType")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nMediaType)
- Set objListItem = ctrlListView.ListItems.Add(6, "Priority", "Priority")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nPriority)
- Set objListItem = ctrlListView.ListItems.Add(7, "OutputFPS", "OutputFPS")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblOutputFPS)
- Set objListItem = ctrlListView.ListItems.Add(8, "PreviewMode", "PreviewMode")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nPreviewMode)
- Set objListItem = ctrlListView.ListItems.Add(9, "Buffering", "Buffering")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nOutputBuffering)
-
- 'clean-up & dereference
- If Not objGroup Is Nothing Then Set objGroup = Nothing
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewCompositeInfo
- ' * procedure description: updates the ide/listview to display the given composition information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewCompositeInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nPriority As Long
- Dim objListItem As ListItem
- Dim dblStartTime As Double
- Dim dblStopTime As Double
- Dim objVirtualTrack As IAMTimelineVirtualTrack
- On Local Error GoTo ErrLine
-
- 'obtain the virtual track from the timeline object
- Set objVirtualTrack = objTimelineObject
-
- 'obtain property value(s)
- objVirtualTrack.TrackGetPriority nPriority
- objTimelineObject.GetStartStop2 dblStartTime, dblStopTime
-
- 'append the composite's information to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "Priority", "Priority")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nPriority)
- Set objListItem = ctrlListView.ListItems.Add(5, "Start", "Start")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStartTime)
- Set objListItem = ctrlListView.ListItems.Add(6, "Stop", "Stop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStopTime)
-
- 'clean-up & dereference
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- If Not objVirtualTrack Is Nothing Then Set objVirtualTrack = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewTransitionInfo
- ' * procedure description: updates the ide/listview to display the given transition information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewTransitionInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nCutsOnly As Long
- Dim nSwapInputs As Long
- Dim dblCutpoint As Double
- Dim objListItem As ListItem
- Dim dblStartTime As Double
- Dim dblStopTime As Double
- Dim objTransition As AMTimelineTrans
- On Local Error GoTo ErrLine
-
- 'obtain transition from given timeline object
- Set objTransition = objTimelineObject
-
- 'obtain property values
- objTimelineObject.GetStartStop2 dblStartTime, dblStopTime
- objTransition.GetCutPoint2 dblCutpoint
- objTransition.GetCutsOnly nCutsOnly
- objTransition.GetSwapInputs nSwapInputs
-
- 'append transition's information to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "CLSID", "CLSID")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(objTimelineObject.GetSubObjectGUIDB)
- Set objListItem = ctrlListView.ListItems.Add(5, "Start", "Start")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStartTime)
- Set objListItem = ctrlListView.ListItems.Add(6, "Stop", "Stop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStopTime)
- Set objListItem = ctrlListView.ListItems.Add(7, "CutPoint", "CutPoint")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblCutpoint)
- Set objListItem = ctrlListView.ListItems.Add(8, "CutsOnly", "CutsOnly")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nCutsOnly)
- Set objListItem = ctrlListView.ListItems.Add(9, "SwapIputs", "SwapIputs")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nSwapInputs)
-
- 'clean-up & dereference
- If Not objTransition Is Nothing Then Set objTransition = Nothing
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewEffectInfo
- ' * procedure description: updates the ide/listview to display the given effect information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewEffectInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nPriority As Long
- Dim objListItem As ListItem
- Dim dblStartTime As Double
- Dim dblStopTime As Double
- Dim objEffect As AMTimelineEffect
- On Local Error GoTo ErrLine
-
- 'obtain effect object from timeline object
- Set objEffect = objTimelineObject
-
- 'obtain property values
- objEffect.EffectGetPriority nPriority
- objTimelineObject.GetStartStop2 dblStartTime, dblStopTime
-
- 'append the effect's information to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "CLSID", "CLSID")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(objTimelineObject.GetSubObjectGUIDB)
- Set objListItem = ctrlListView.ListItems.Add(5, "Start", "Start")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStartTime)
- Set objListItem = ctrlListView.ListItems.Add(6, "Stop", "Stop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStopTime)
-
- 'clean-up & dereference
- If Not objEffect Is Nothing Then Set objEffect = Nothing
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewTrackInfo
- ' * procedure description: updates the ide/listview to display the given track information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewTrackInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nBlank As Long
- Dim nPriority As Long
- Dim nMuted As Long
- Dim dblStartTime As Double
- Dim dblStopTime As Double
- Dim objListItem As ListItem
- Dim objTimelineTrack As AMTimelineTrack
- Dim objTimelineVirtualTrack As IAMTimelineVirtualTrack
- On Local Error GoTo ErrLine
-
- 'obtain timeline track from given timeline object
- Set objTimelineTrack = objTimelineObject
- 'obtain virtual timeline track from given timeline object
- Set objTimelineVirtualTrack = objTimelineTrack
-
- 'get track property values
- objTimelineTrack.AreYouBlank nBlank
- objTimelineObject.GetMuted nMuted
- objTimelineObject.GetStartStop2 dblStartTime, dblStopTime
- objTimelineVirtualTrack.TrackGetPriority nPriority
-
- 'append the track's information to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "Priority", "Priority")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nPriority)
- Set objListItem = ctrlListView.ListItems.Add(5, "Blank", "Blank")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nBlank)
- Set objListItem = ctrlListView.ListItems.Add(6, "Muted", "Muted")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nMuted)
- Set objListItem = ctrlListView.ListItems.Add(7, "Start", "Start")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStartTime)
- Set objListItem = ctrlListView.ListItems.Add(8, "Stop", "Stop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblStopTime)
-
- 'dereference & clean-up
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- If Not objTimelineTrack Is Nothing Then Set objTimelineTrack = Nothing
- If Not objTimelineVirtualTrack Is Nothing Then Set objTimelineVirtualTrack = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-
-
- ' ******************************************************************************************************************************
- ' * procedure name: ViewSourceInfo
- ' * procedure description: updates the ide/listview to display the given source information
- ' *
- ' ******************************************************************************************************************************
- Public Sub ViewSourceInfo(ctrlListView As ListView, objTimelineObject As AMTimelineObj)
- Dim nMuted As Long
- Dim dblTStart As Double
- Dim dblTStop As Double
- Dim nStretchMode As Long
- Dim objListItem As ListItem
- Dim dblStartTime As Double
- Dim nStreamNumber As Long
- Dim dblDefaultFPS As Double
- Dim bstrMediaName As String
- Dim dblMediaLength As Double
- Dim dblMediaStartTime As Double
- Dim dblMediaStopTime As Double
- Dim objTimelineSource As AMTimelineSrc
- On Local Error GoTo ErrLine
-
- 'obtain source from given timeline object
- Set objTimelineSource = objTimelineObject
-
- 'obtain property values given the source object
- bstrMediaName = objTimelineSource.GetMediaName
- objTimelineSource.GetMediaTimes2 dblMediaStartTime, dblMediaStopTime
- objTimelineObject.GetStartStop2 dblTStart, dblTStop
- objTimelineSource.GetDefaultFPS dblDefaultFPS
- objTimelineSource.GetStreamNumber nStreamNumber
- objTimelineSource.GetStretchMode nStretchMode
- objTimelineObject.GetMuted nMuted
-
- 'append source information on to the listview control
- Set objListItem = ctrlListView.ListItems.Add(4, "MediaName", "MediaName")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(bstrMediaName)
- Set objListItem = ctrlListView.ListItems.Add(5, "MStart", "MStart")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblMediaStartTime)
- Set objListItem = ctrlListView.ListItems.Add(6, "MStop", "MStop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblMediaStopTime)
- Set objListItem = ctrlListView.ListItems.Add(7, "TStart", "TStart")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblTStart)
- Set objListItem = ctrlListView.ListItems.Add(8, "TStop", "TStop")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblTStop)
- Set objListItem = ctrlListView.ListItems.Add(9, "MediaLength", "MediaLength")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblMediaLength)
- Set objListItem = ctrlListView.ListItems.Add(10, "StreamNumber", "StreamNumber")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nStreamNumber)
- Set objListItem = ctrlListView.ListItems.Add(11, "FPS", "FPS")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(dblDefaultFPS)
- Set objListItem = ctrlListView.ListItems.Add(12, "StretchMode", "StretchMode")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nStretchMode)
- Set objListItem = ctrlListView.ListItems.Add(13, "Muted", "Muted")
- objListItem.SubItems(ctrlListView.ColumnHeaders("Value").SubItemIndex) = CStr(nMuted)
-
- 'clean-up & dereference
- If Not objListItem Is Nothing Then Set objListItem = Nothing
- If Not objTimelineSource Is Nothing Then Set objTimelineSource = Nothing
- Exit Sub
-
- ErrLine:
- Err.Clear
- Exit Sub
- End Sub
-